Previous Book Contents Book Index Next

Inside Macintosh: 3D Graphics Programming With QuickDraw 3D /
Chapter 9 - Camera Objects


Summary of Camera Objects

C Summary

Constants

Camera Types

#define kQ3CameraTypeOrthographic      Q3_OBJECT_TYPE('o','r','t','h')
#define kQ3CameraTypeViewAngleAspect   Q3_OBJECT_TYPE('v','a','n','a')
#define kQ3CameraTypeViewPlane         Q3_OBJECT_TYPE('v','w','p','l')

Data Types

Camera Placement Structure

typedef struct TQ3CameraPlacement {
   TQ3Point3D                 cameraLocation;
   TQ3Point3D                 pointOfInterest;
   TQ3Vector3D                upVector;
} TQ3CameraPlacement;

Camera Range Structure

typedef struct TQ3CameraRange {
   float                      hither;
   float                      yon;
} TQ3CameraRange;

Camera View Port

typedef struct TQ3CameraViewPort {
   TQ3Point2D                 origin;
   float                      width;
   float                      height;
} TQ3CameraViewPort;

Camera Data Structure

typedef struct TQ3CameraData {
   TQ3CameraPlacement         placement;
   TQ3CameraRange             range;
   TQ3CameraViewPort          viewPort;
} TQ3CameraData;

Orthographic Camera Data Structure

typedef struct TQ3OrthographicCameraData {
   TQ3CameraData              cameraData;
   float                      left;
   float                      top;
   float                      right;
   float                      bottom;
} TQ3OrthographicCameraData;

View Plane Camera Data Structure

typedef struct TQ3ViewPlaneCameraData {
   TQ3CameraData              cameraData;
   float                      viewPlane;
   float                      halfWidthAtViewPlane;
   float                      halfHeightAtViewPlane;
   float                      centerXOnViewPlane;
   float                      centerYOnViewPlane;
} TQ3ViewPlaneCameraData;

Aspect Ratio Camera Data Structure

typedef struct TQ3ViewAngleAspectCameraData {
   TQ3CameraData              cameraData;
   float                      fov;
   float                      aspectRatioXToY;
} TQ3ViewAngleAspectCameraData;

Camera Objects Routines

Managing Cameras

TQ3ObjectType Q3Camera_GetType(TQ3CameraObject camera);
TQ3Status Q3Camera_GetData(TQ3CameraObject camera, 
TQ3CameraData *cameraData);
TQ3Status Q3Camera_SetData(TQ3CameraObject camera, 
const TQ3CameraData *cameraData);
TQ3Status Q3Camera_GetPlacement (
TQ3CameraObject camera, 
TQ3CameraPlacement *placement);
TQ3Status Q3Camera_SetPlacement (
TQ3CameraObject camera, 
const TQ3CameraPlacement *placement);
TQ3Status Q3Camera_GetRange(TQ3CameraObject camera, 
TQ3CameraRange *range);
TQ3Status Q3Camera_SetRange(TQ3CameraObject camera, 
const TQ3CameraRange *range);
TQ3Status Q3Camera_GetViewPort(TQ3CameraObject camera, 
TQ3CameraViewPort *viewPort);
TQ3Status Q3Camera_SetViewPort(TQ3CameraObject camera, 
const TQ3CameraViewPort *viewPort);
TQ3Status Q3Camera_GetWorldToView (
TQ3CameraObject camera, 
TQ3Matrix4x4 *worldToView);
TQ3Status Q3Camera_GetViewToFrustum (
TQ3CameraObject camera, 
TQ3Matrix4x4 *viewToFrustum);
TQ3Status Q3Camera_GetWorldToFrustum (
TQ3CameraObject camera, 
TQ3Matrix4x4 *worldToFrustum);

Managing Orthographic Cameras

TQ3CameraObject Q3OrthographicCamera_New (
const TQ3OrthographicCameraData 
*orthographicData);
TQ3Status Q3OrthographicCamera_GetData (
TQ3CameraObject camera, 
TQ3OrthographicCameraData *cameraData);
TQ3Status Q3OrthographicCamera_SetData (
TQ3CameraObject camera, 
const TQ3OrthographicCameraData *cameraData);
TQ3Status Q3OrthographicCamera_GetLeft (
TQ3CameraObject camera, float *left);
TQ3Status Q3OrthographicCamera_SetLeft (
TQ3CameraObject camera, float left);
TQ3Status Q3OrthographicCamera_GetTop (
TQ3CameraObject camera, float *top);
TQ3Status Q3OrthographicCamera_SetTop (
TQ3CameraObject camera, float top);
TQ3Status Q3OrthographicCamera_GetRight (
TQ3CameraObject camera, float *right);
TQ3Status Q3OrthographicCamera_SetRight (
TQ3CameraObject camera, float right);
TQ3Status Q3OrthographicCamera_GetBottom (
TQ3CameraObject camera, float *bottom);
TQ3Status Q3OrthographicCamera_SetBottom (
TQ3CameraObject camera, float bottom);

Managing View Plane Cameras

TQ3CameraObject Q3ViewPlaneCamera_New (
const TQ3ViewPlaneCameraData *cameraData);
TQ3Status Q3ViewPlaneCamera_GetData (
TQ3CameraObject camera, 
TQ3ViewPlaneCameraData *cameraData);
TQ3Status Q3ViewPlaneCamera_SetData (
TQ3CameraObject camera, 
const TQ3ViewPlaneCameraData *cameraData);
TQ3Status Q3ViewPlaneCamera_GetViewPlane (
TQ3CameraObject camera, float *viewPlane);
TQ3Status Q3ViewPlaneCamera_SetViewPlane (
TQ3CameraObject camera, float viewPlane);
TQ3Status Q3ViewPlaneCamera_GetHalfWidth (
TQ3CameraObject camera, 
float *halfWidthAtViewPlane);
TQ3Status Q3ViewPlaneCamera_SetHalfWidth (
TQ3CameraObject camera, 
float halfWidthAtViewPlane);
TQ3Status Q3ViewPlaneCamera_GetHalfHeight (
TQ3CameraObject camera, 
float *halfHeightAtViewPlane);
TQ3Status Q3ViewPlaneCamera_SetHalfHeight (
TQ3CameraObject camera, 
float halfHeightAtViewPlane);
TQ3Status Q3ViewPlaneCamera_GetCenterX (
TQ3CameraObject camera, 
float *centerXOnViewPlane);
TQ3Status Q3ViewPlaneCamera_SetCenterX (
TQ3CameraObject camera, 
float centerXOnViewPlane);
TQ3Status Q3ViewPlaneCamera_GetCenterY (
TQ3CameraObject camera, 
float *centerYOnViewPlane);
TQ3Status Q3ViewPlaneCamera_SetCenterY (
TQ3CameraObject camera, 
float centerYOnViewPlane);

Managing Aspect Ratio Cameras

TQ3CameraObject Q3ViewAngleAspectCamera_New (
const TQ3ViewAngleAspectCameraData *cameraData);
TQ3Status Q3ViewAngleAspectCamera_GetData (
TQ3CameraObject camera, 
TQ3ViewAngleAspectCameraData *cameraData);
TQ3Status Q3ViewAngleAspectCamera_SetData (
TQ3CameraObject camera, 
const TQ3ViewAngleAspectCameraData *cameraData);
TQ3Status Q3ViewAngleAspectCamera_GetFOV (
TQ3CameraObject camera, float *fov);
TQ3Status Q3ViewAngleAspectCamera_SetFOV (
TQ3CameraObject camera, float fov);
TQ3Status Q3ViewAngleAspectCamera_GetAspectRatio (
TQ3CameraObject camera, 
float *aspectRatioXToY);
TQ3Status Q3ViewAngleAspectCamera_SetAspectRatio (
TQ3CameraObject camera, 
float aspectRatioXToY);

Errors
kQ3ErrorInvalidCameraValuesSome camera values are invalid


Previous Book Contents Book Index Next

© Apple Computer, Inc.
11 JUL 1996